﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Server
{
    public class CPhanTichGoiTin
    {
        /// <summary>
        /// Phân tích gói tin
        /// </summary>
        /// <param name="str"></param>
       public string PhanTichGoiTin(string str)
        {
            string converstr = string.Empty;
            CXuLyXML xulyXML = new CXuLyXML();
            bool flag;
            string[] arr = str.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);

            if (arr.Length != 0)
            {
                switch (arr[0])
                {
                    #region "register"
                    case "register"://Nhận gói tin đăng ký
                        //Nội dung gói tin
                        CAccount account = new CAccount();
                        account.Taikhoan = arr[1].Trim();
                        account.Matkhau = arr[2].Trim();
                        account.Truso = arr[3].Trim();
                        account.Diachi = arr[4].Trim();
                        account.Dienthoai = arr[5].Trim();
                        account.Email = arr[6].Trim();

                        flag = xulyXML.ThemTaiKhoan(account);//Thêm tài khoản
                        if (flag == false)//Thêm tài khoản không thành công
                        {
                            converstr = "register|0";//Cấu trúc gói tin thông báo đăng ký không thành công
                        }
                        else//Thêm tài khoản  thành công
                        {
                            converstr = "register|1";//Cấu trúc gói tin thông báo đăng ký thành công
                        }
                        break;
                    #endregion

                    #region "login"
                    case "login"://Nhận gói tin đăng nhập
                        //Nội dung gói tin
                        string user = arr[1].Trim();
                        string pass = arr[2].Trim();

                        flag = xulyXML.IsDangNhap(user, pass);
                        if (flag == false)//Đăng nhập không thành công
                        {
                            converstr = "login|0";//Cấu trúc gói tin thông báo đăng nhập không thành công
                        }
                        else//Đăng nhập thành công
                        {
                            converstr = "login|1|" + xulyXML.LayToanBoSanpham();//Cấu trúc gói tin thông báo đăng nhập thành công
                            converstr = converstr.Trim();
                        }

                        break;

                    #endregion

                    #region "Init"
                    case "init"://Gửi toàn bộ dữ liệu
                        converstr = "init|" + xulyXML.LayToanBoSanpham();//Cấu trúc gói tin gửi toàn bộ CSDL
                        converstr = converstr.Trim();
                        break;
                    #endregion

                    #region "update"
                    case "update"://Cập nhật sản phẩm
                        str = "update|" + str; //Cấu trúc gói tin cập nhật sản phẩm
                        break;
                    #endregion

                    #region "report"
                    case "report"://Gửi báo cáo
                        string _user_2 = arr[1].Trim();
                        string _ngayban_1 = arr[2].Trim();
                        CReport report = xulyXML.LayDanhSachBaoCao(CDateTime.DateTimeParse(_ngayban_1), _user_2);
                        if (report != null)
                        {
                            converstr = "report|"+ report.Ngaybaocao.ToShortDateString()
                                + "|Sản phẩm bán nhiều nhất: "+ report.Sanphambannhieunhat.Ten + ", Số lượng: " + report.Soluongsanphambannhieunhat
                                + "|Sản phẩm bán ít nhất: " + report.Sanphambanitnhat.Ten + ", Số lượng: " + report.Soluongsanphambanitnhat
                                + "|Tổng doanh thu: " + string.Format("{0:c}", report.Tongdoanhthu).Replace("$", "").Replace(".00", "") + " VNĐ"
                                + "|Danh sách sản phẩm bán được";

                            foreach (var i in report.Listsanphamban)
                            {
                                converstr = converstr + "|" + i.Ten + ", Số lượng: " + i.Soluongbanduoc + ", Thành tiền: " + string.Format("{0:c}", i.Doanhthu).Replace("$", "").Replace(".00", "") + " VNĐ";
                            }
                        }
                        else
                        {
                            converstr = "";
                        }
                        break;
                    #endregion

                    #region "sale"
                    case "sale"://Gửi báo cáo ngày
                        string _user_1 = arr[1].Trim();
                        string _masanpham = arr[2].Trim();
                        string _tongsoluong = arr[3].Trim();
                        string _thanhtien = arr[4].Trim();
                        string _ngayban = arr[5].Trim();
                        xulyXML.ThongKeNgay_TuClient(_user_1, _masanpham, _tongsoluong, _thanhtien, _ngayban);
                        break;
                    #endregion

                    #region "quit"
                    case "quit"://Client thoát
                        converstr = "quit";
                        break;
                    #endregion
                }
            }
            else
            {
                throw new Exception("Gói tin bị lỗi");
            }
            return converstr;   
        }
    }
}
